package com.violet.common.constant.universal;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @Author: wqf
 * @Date: 2022/09/28
 * @Description: 全局常量-使用枚举
 * 该类所有常量 无论哪个系统都能用
 */
public class GlobalEnums {

    /**
     * 星期
     */
    public enum WeekDay {
        //星期一
        MONDAY,
        //星期二
        TUESDAY,
        //星期三
        WEDNESDAY,
        //星期四
        THURSDAY,
        //星期五
        FRIDAY,
        //星期六
        SATURDAY,
        //星期天
        SUNDAY
    }

    /**
     * 时间单位常量
     */
    public enum TimeUnit {
        /**
         * 年
         */
        YEAR,
        /**
         * 月
         */
        MONTH,
        /**
         * 日
         */
        DAY,
        /**
         * 时
         */
        HOUR,
        /**
         * 分
         */
        MINUTE,
        /**
         * 秒
         */
        SECOND,
        /**
         * 毫秒
         */
        MILLISECOND
    }

    /**
     * 请求方式常量
     */
    @Getter
    @AllArgsConstructor
    public enum RequestMethod {
        /**
         * OPTION 预请求
         */
        OPTION("OPTION"),
        /**
         * GET 请求
         */
        GET("GET"),
        /**
         * POST 请求
         */
        POST("POST"),
        /**
         * DELETED 删除请求
         */
        DELETED("DELETED"),
        /**
         * PUT 更新请求
         */
        PUT("PUT"),
        /**
         * PATCH 请求
         */
        PATCH("PATCH"),
        ;

        private final String value;
    }

    /**
     * 符号常量
     */
    @AllArgsConstructor
    @Getter
    public enum Symbol {
        /**
         * 英文分号
         */
        SEMICOLON_EN(";"),
        /**
         * 中文分号
         */
        SEMICOLON_CN(";"),
        /**
         * 英文逗号
         */
        COMMA_EN(";"),
        /**
         * 中文逗号
         */
        COMMA_CN("，"),
        /**
         * 英文冒号
         */
        COLON_EN(":"),
        /**
         * 中文冒号
         */
        COLON_CN("："),
        /**
         * 英文问号
         */
        QUESTION_MARK_EN("?"),
        /**
         * 中文问号
         */
        QUESTION_MARK_CN("？"),
        /**
         * 左括号
         */
        LEFT_PARENTHESIS("["),
        /**
         * 右括号
         */
        RIGHT_PARENTHESIS("]"),
        /**
         * 下划线
         */
        UNDERLINE("_"),
        /**
         * 反斜杠
         */
        BACKSLASH("\\"),
        /**
         * 空格符
         */
        SPACE(" "),
        ;

        private final String value;
    }

    /**
     * 字符编码
     */
    @AllArgsConstructor
    @Getter
    public enum CharacterEncoding {
        /**
         * UTF-8
         */
        UTF8("UTF-8"),
        /**
         * GBK
         */
        GBK("GBK");

        private final String value;
    }
}
